Innovations in data communications technology, fueled by bandwidth-intensive applications, have led to a ten-fold improvement in networking hardware throughput occurring about every four years. These network performance improvements, which have increased from 10 Megabits per second (Mbps) to 100 Mbps, and now to 1-Gigabit per second (Gbps) with 10-Gigabit on the horizon, have outpaced the capability of central processing units (CPUs). To compensate for this dilemma and to free up CPU resources to handle general computing tasks, offloading Transmission Control Protocol/Internet Protocol (TCP/IP) functionality to dedicated network processing hardware is a fundamental improvement. TCP/IP chimney offload maximizes utilization of host CPU resources for application workloads, for example, on Gigabit and multi-Gigabit networks.
Converged network interface devices are generally utilized to integrate a plurality of different types of network traffic into one physical network. Although there may be instances when the quality of service (QoS) requirements for the different types of traffic are consistent, it is often the case that these QoS requirements are inconsistent with each other. Management traffic, for example, may require guaranteed delivery regardless of traffic conditions. Converged network interface devices may perform protocol acceleration and protocol processing beyond OSI layer 2 and may require considerable computational power. As a result, these devices may not be able to sustain line rate for the shortest packets. However, a denial of service (DoS) attack may fill the wire at its line rate, with short packets of meaningless traffic, which may block management traffic. Certain types of traffic such as clustering traffic may require low latency. Storage traffic, for example, may require guaranteed delivery while using the shortest packets infrequently, with normal traffic patterns. Some type of traffic such as critical networking traffic may require varying levels of prioritization, while other networking traffic may require best effort.
Clustering traffic may use proprietary or standardized clustering technologies. Storage traffic may use fiber channel, for example, while networking traffic may use Ethernet. In many cases, management traffic may utilize a separate out of band management network to guarantee delivery and avoid mixing it with the user Ethernet network. Each of these separate networks may be specifically designed to guarantee the quality of service required for the payload it carries so that there are no other traffic types with conflicting QoS requirements trying to share the same network. When consolidating all these networks over a single network that carries all traffic types, the converged network may provide similar QoS as guaranteed by the physically separate networks.
Congestion avoidance is an algorithm that may be utilized, for example, by TCP based traffic in conjunction with slow start to minimize the effects of lost packets. Congestion may occur when a device may receive more TCP segments at its input than it may be able to adequately process with some minimal acceptable delay. Congestion may also occur when TCP segments transition from a faster transport infrastructure to a slower transport infrastructure. In this regard, the network device at the edge of the faster transport infrastructure and the slower transport infrastructure may become a bottleneck. Congestion avoidance utilizes packet loss and duplicate acknowledgements (ACKs) to determine when congestion occurs. Although slow start and congestion avoidance have varying objectives and are independent of each other, TCP recovery from congestion may involve decreasing the transmission rate and executing slow start to gradually increase the transmission rate from a window size of one (1). In some cases, TCP may generate numerous ACKs and congestion avoidance may interpret this to mean that TCP segments are lost, resulting in retransmission. Accordingly, TCP recovery from congestion avoidance and/or TCP slow start may be a relatively slow process and may in certain instances, also cause unwanted retransmissions,
Memory bandwidth has not scaled at the same pace as network bandwidth, and as a result, networking devices with external memory are difficult and expensive to build. The buffer memories embedded within the networking device may have the required memory bandwidth to buffer networking traffic. Since the buffer memory has to be internal to the device, whether switching device or network interface device, its size is usually considerably smaller than external memory, traditionally used for lower speed devices.
Buffer memory in packet networks typically needs to compensate for the round trip time of the network along with some control loop elements, typically in both ends but also in the infrastructure. So, as networks are shifting from 1 Gbps to 10 Gbps, buffer space and memory bandwidth should both scale by a factor of 10 to compensate for the same round trip time, if similar round trip time is assumed. Aggravating the problems even further may be the trend of shifting from external to internal memories, as it may reduce the available buffer space. This severe reduction in buffer space may severely impact the TCP flow control, the clear predominant protocol that is used for the vast majority of network traffic and potentially other application level flow controls or any other measures used.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.